// dto/request/user_request.go
package request

import "time"

type CreateUserRequest struct {
	Name  string `json:"name" validate:"required"`
	Email string `json:"email" validate:"required,email"`
	Age   uint8  `json:"age" validate:"min=0,max=120"`
}

type UpdateUserRequest struct {
	ID    uint64 `json:"id" validate:"required"`
	Name  string `json:"name" validate:"required"`
	Email string `json:"email" validate:"required,email"`
	Age   uint8  `json:"age" validate:"min=0,max=120"`
}

type QueryUsersListRequest struct {
	IDs    []uint64 `json:"ids"`     // id IN (...)
	Name   *string  `json:"name"`    // name LIKE %name%
	MinAge *float64 `json:"min_age"` // age >= min_age
	MaxAge *float64 `json:"max_age"` // age <= max_age
	Status *int     `json:"status"`  // status = ?

	// 创建时间范围查询
	StartTime *time.Time `json:"start_time"` // created_at >= start_time
	EndTime   *time.Time `json:"end_time"`   // created_at <= end_time

	OrderField *string `json:"order_field"` // 排序字段，如 "id", "score", "created_at"
	Order      *string `json:"order"`       // 排序方式 "ASC" 或 "DESC"（不区分大小写）

	Page     *int `json:"page"`      // 页码（从 1 开始）
	PageSize *int `json:"page_size"` // 每页数量（建议最大 100）
}
